Slate 창 띄우기
4. Archive/GSB/AssetAction 항목 추가하기
AssetAction으로 Slate창을 띄워보기로 한다.
UCLASS()
class GSBFACILITYEDITORTOOLS_API UGSBFacilityMaterialAssetAction : public UAssetActionUtility
{
GENERATED_BODY()
public:
UGSBFacilityMaterialAssetAction();
public:
UFUNCTION(CallInEditor)
void SetDissolveMaterialFunction();
/////////////////////////////////////////////////////////////
// SetDissolveMaterialFunction Slate Tab
/////////////////////////////////////////////////////////////
private:
void RegisterSetDissolveMaterialFunctionTab();
TSharedRef<SDockTab> HandleOnSpawnSetDissolveMaterialFunctionTab(const FSpawnTabArgs& SpawnTabArgs);
};
UGSBFacilityMaterialAssetAction::UGSBFacilityMaterialAssetAction()
{
RegisterSetDissolveMaterialFunctionTab();
}
void UGSBFacilityMaterialAssetAction::SetDissolveMaterialFunction()
{
FGlobalTabmanager::Get()->TryInvokeTab(FName(TEXT("SetDissolveMaterialFunction")));
}
void UGSBFacilityMaterialAssetAction::RegisterSetDissolveMaterialFunctionTab()
{
FGlobalTabmanager::Get()->RegisterNomadTabSpawner(
FName("SetDissolveMaterialFunction"),
FOnSpawnTab::CreateUObject(this, &UGSBFacilityMaterialAssetAction::HandleOnSpawnSetDissolveMaterialFunctionTab)
)
.SetDisplayNameFromString(TEXT("Set Dissolve Material Function"));
}
TSharedRef<SDockTab> UGSBFacilityMaterialAssetAction::HandleOnSpawnSetDissolveMaterialFunctionTab(const FSpawnTabArgs& SpawnTabArgs)
{
return SNew(SDockTab)
.TabRoleNomadTab
;
}
코드를 읽어보면 알다시피, AssetActionUtility의 생성자에서 Slate기반 Tab을 Register하고, AssetAction에서 창을 호출한다.